export interface IFilterDetails {
	activeExchange: string; // exchangeId
	advDetails: any;
	orderDetails: any;
	itemDetails: any;
	balanceDetails: any;
	checkboxStatus: boolean;
	orderCoin: string;
	orderTradeType: string;
	orderStatusType: string;
	orderPayType: string;
	orderExchange: string;
	advActiveStatus: string;
	properties: Array<{
		exchange: string,
		exchangeId: string,
		fiat: string,
		asset: string,
		tradeType: string,
		tickerAssetFiat: string,
		priceAssetFiat: string,
		tickerCurrencyUSDT: string,
		priceCurrencyUSDT: string,
		transAmount: string,
		payTypeList: string[],
		quantityPages: string,
		checkboxStatus: boolean,
		orderCoin: string,
		orderTradeType: string,
		orderStatusType: string,
		orderPayType: string,
		orderExchange: string,
		advActiveStatus: string,
	}>;
}

export interface IUserProfile {
	auth: boolean;
	token: string;
	id: string;
	login: string;
	lang: string;
	theme: string;
	status: string;
	advSell: number;
	subAccounts: any;
	userProperties: Array<{
		exchange: string,
		exchangeId: string,
		exchangeUserId: string,
		userNickName: string,
		updateOrders: boolean,
		soundAlert: string,
		dateApiKeys: number,
		payTypeList: string[],
		favorites: Array<{ exchangeUserId: string, nickName: string }>,
		favoriteAdvs: { sellList: any, buyList: any },
		p2pOrders: any,
		spotOrders: any,
		merchantOrders: any,
		merchantPayMethods: any,
		merchantAdvs: any,
		currentBalances: {
			p2pBalance: any,
			spotBalance: any,
			futBalance: any,
		},
	}>;
}

export interface IMessagePopup {
	category: string;
	message: string;
}

export interface IState {
	filterDetails: IFilterDetails;
	userProfile: IUserProfile;
	messagePopup: IMessagePopup;
	currentCourses: any;
	fundingRates: any;
	spreads: any;
	userOrderStatuses: any;
	reports: {
		reportSpotOrders: any,
		reportMerchantOrders: any,
		reportBalances: any,
		reportCost: any,
		reportStats: any,
	};
	loading: boolean;
	loaded: boolean;
	error: null;
}
